Method and System for Controlling Angular Rotor Speeds of Sensorless Induction Motors

ABSTRACT

A method controls an angular speed of an induction motor by measuring a stator current and a stator voltage of the induction motor to determine an estimated stator current, an estimated rotor flux amplitude, and an estimated rotor speed. A first virtual control signal is based on a reference rotor speed and the estimated rotor speed. A second virtual control signal is based on the first virtual control signal and an estimated electromagnetic torque. A third virtual control signal is based on a reference rotor flux reference and the estimated rotor flux amplitude. A fourth virtual control signal is based on the third virtual control signal and an estimate of the third virtual control signal. Then, control input voltages are applied to the induction motor based on the second virtual control signal and the fourth virtual control signal.

RELATED APPLICATION

The U.S. Patent Application is related to U.S. Ser. No. 14/612,429, co-filed herewith on Feb. 3, 2015, and incorporated herein. Both Applications disclose a method and system for controlling the angular rotor speed of sensorless induction motors.

FIELD OF THE INVENTION

This invention relates generally to controlling an angular rotor speed of induction motors, and more particularly to controlling sensorless variable speed induction motors.

BACKGROUND OF THE INVENTION

Methods for controlling the angular rotor speed of induction motors have evolved from variable frequency control to vector control and other variants, e.g., direct and indirect field oriented state feedback control, sensorless speed control, and adaptive field oriented control. Vector control with a full state or rotor speed measurements can provide adequate performance at the expenses of additional sensors, which can limit their application in practice.

Sensorless speed control includes sensorless adaptive control, where the rotor speed is typically treated as an unknown parameter to avoid nonlinearity in dynamics. Controls relying on parameter assumptions generally have unsatisfactory transient performance inherent to the adaptation.

Other methods that use a high gain state estimator, sliding mode estimator, or an extended Kalman filter (EKF) avoid the parameter assumptions, but fail to address performance. As an example, resorting to nonlinear estimator techniques entails a system in certain normal forms, which turns out to be difficult. Well-known high gain estimators designs assume an observable canonical form.

FIG. 1 shows a prior art sensorless speed motor drive for an induction motor. The reference numerals for FIG. 1 are:

-   101 Speed control -   102 Flux control -   103 Current control -   104 Clarke Transformation/Power electronics -   105 Induction motor -   106 Flux estimator -   107 Speed estimator -   111 desired speed -   112 estimated speed -   113 estimated speed error -   114 desired q-axis current -   115 estimated/measured q-axis current -   116 q-axis current tracking error -   117 desired flux modulus -   118 estimated flux modulus -   119 estimated flux error -   120 desired d-axis current -   121 estimated/measured d-axis current -   122 d-axis current tracking error -   123 desired voltage input commands -   124 measured voltage inputs -   125 current measurements -   126 estimated flux.

Input to the motor drive is a reference rotor flux amplitude signal 111. An estimate 112 from a flux estimator block 106 is added to the signal 111 so that the signal 113 represents a difference between signals 111 and 112.

A flux control block 101 determines a stator current 114 used to control the rotor flux linkage in the d-axis. A signal 115 is an estimate or true stator current, in the d-axis, produced by a flux estimator 106. A difference 116 between the signals 115 and 114 is used by a current control block 103 to determine a reference stator voltage 123 in the d-axis. Similarly, a signal 117 denotes the desired rotor speed reference of the induction motor.

A signal 118 denotes an estimated rotor speed produced by a speed estimator 107 based on output signal 126 of the flux estimator 106. A difference 119 between signals 117 and 118 is used to determine a reference stator current 120, in the q-axis, by the flux control block 102.

An estimated or true stator current 121, in the q-axis, is compared to the reference stator current 120, in an imaginary q-axis used to control the torque of the motor, to produce a difference signal 122. The current control block 103 determines the stator voltage signal 123, in d- and q-axes, on the basis of difference signals 116 and 122. A Clarke or Park transformation 104 converts the desired stator voltage, in d- and q-axes, into three-phase voltages 124 to drive the induction motor 105.

Note that the flux estimator 106 takes the three-phase voltages 124 and sensed phase currents 125 as input signals, and outputs estimated or true stator currents 115 and 121, estimated rotor flux amplitude 112, and estimated rotor speed signal 118 to produce the difference signals 113, 116, 119, and 122. The estimated stator current and the estimated rotor flux amplitude, and the estimated rotor speed can be determined independently. The signal 119 is used for speed control 102.

SUMMARY OF THE INVENTION

The embodiments of the invention provide a method and system for controlling an angular rotor speed of an induction motor without measuring the angular rotor speed. With a general state estimator, the tracking control explicitly takes parametric uncertainties and state estimation errors into consideration by backstepping-based adaptive control.

In control theory, state estimators are also known as state observers. The state observer provides an estimate of internal states of a given system from measurements of the input and output of the system. Herein, the terms estimator and observer are used interchangeably.

The method results in the tracking control where the ranges of gains are practical. Thus, the method can be used by motor drives for high bandwidth speed tracking tasks. Moreover, the gain selection for the controller is relatively straightforward. An extended Kalman filter (EKF) is used to estimate the state of the induction motor.

Different from prior art, where the EKF design is typically based on a model of an induction motor model a constant rotor speed, the invention considers and validates an EKF state estimator for the induction motor that can operate at variable speeds. The state estimation errors are explicitly dealt with back-stepping control design, so that the final control accuracy is guaranteed. There is no assumption on time-scale separation for both the estimation and the control design, so that high overall bandwidth is achieved even with practical constrains.

The method can achieve a high bandwidth, e.g., 200 Hz, and high precision speed tracking of the induction motor under practical implementation constraints, e.g., a 20 kHz sampling rate and a 400 V input saturation. The gain selection for the method is straightforward and does not depend on trajectories. The method can track various trajectories as long as the state and control input constraints are considered.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a prior art sensorless speed motor drive and induction motor;

FIG. 2A is a block diagram of a sensorless speed motor drive and induction motor according to embodiments of the invention;

FIG. 2B is an alternative embodiment of the sensorless speed motor drive and induction motor according to embodiments of the invention;

FIG. 3 is a flow diagram of model compensation and stabilizing for speed control according to embodiments of the invention;

FIG. 4A is a flow diagram of torque control according to embodiments of the invention;

FIG. 4B is a flow diagram of a flux control outer loop according to embodiments of the invention;

FIG. 4C is a flow diagram of a flux control inner loop according to embodiments of the invention; and

FIG. 5 is a schematic a flux and speed estimator according to embodiments of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments of the invention provide a method and system for controlling an angular rotor speed of an induction motor based on sensing stator currents in the motor.

Model of Induction Motor

With the assumption of linear magnetic circuits and balanced operating conditions, a two-phase equivalent model of an induction motor, represented in a fixed a b reference frame, can be written as

$\begin{matrix} {{\overset{.}{\omega} = {{\mu \left( {{\varphi_{ra}i_{sb}} - {\varphi_{rb}i_{sa}}} \right)} - {{T_{L}(\omega)}/J}}}{i_{sa} = {{\alpha \; \beta \; \varphi_{ra}} + {n_{p}\beta \; \omega \; \varphi_{rb}} - {\gamma \; i_{sa}} + {\frac{1}{\sigma}u_{sa}}}}{i_{sb} = {{\alpha \; \beta \; \varphi_{rb}} - {n_{p}\beta \; \omega \; \varphi_{ra}} - {\gamma \; i_{sb}} + {\frac{1}{\sigma}u_{sb}}}}{{\overset{.}{\varphi}}_{ra} = {{{- \alpha}\; \varphi_{ra}} - {n_{p}\omega \; \varphi_{rb}} + {\alpha \; {Mi}_{sa}}}}{{\overset{.}{\varphi}}_{rb} = {{{- \alpha}\; \varphi_{rb}} + {n_{p}\omega \; \varphi_{ra}} + {\alpha \; {Mi}_{sb}}}}{{y = \left( {i_{sa},i_{sb}} \right)^{T}},}} & (1) \end{matrix}$

where r and s represent the rotor and stator, a and b represent the a and b axis, ω is the angular speed of the rotor, i denotes the current, φ denotes the flux linkage, u is the input stator voltage, R, L, M, J, T_(L)(ω) and n_(p) denote the resistance, inductance, mutual inductance, rotor inertia, load torque, and number of pole pairs, respectively, and

${\alpha = \frac{R_{r}}{L_{r}}},{\beta = \frac{M}{\sigma \; L_{r}}},{\sigma = {L_{s} - \frac{M^{2}}{L_{r}}}},{\gamma = \frac{{M^{2}R_{r}} + {L_{r}^{2}R_{s}}}{\sigma \; L_{r}^{2}}},{\mu = {\frac{3}{2}{\frac{n_{p}M}{{JL}_{r}}.}}}$

For simplicity, the load torque T_(L) is assumed to be parameterized as T_(L)(ω)=T₀+C_(f)ω with T₀ and C_(f) constants. With the following change of variables

x₁=ω, x₂=i_(sa), x₃=i_(sb), x₄=φ_(ra), x₅=φ_(rb), u₁=u_(sa), u₂=U_(sb),

${b = \frac{1}{\sigma}},{a_{1} = \mu},{a_{2} = \frac{T_{0}}{J}},{a_{3} = \frac{C_{f}}{J}},$

a₅=αβ, a₆=n_(p)β, a₇=γ, a₈=α, a₉=n_(p), a₁₀=αM, equation (1) can be rewritten as

$\begin{matrix} {{\overset{.}{x} = {{f\left( {x,u} \right)} = {{(x)} + {Bu}}}}{{y = {Cx}},{{(x)} = \begin{bmatrix} {{a_{1}\left( {{x_{3}x_{4}} - {x_{2}x_{5}}} \right)} - a_{2} - {a_{3}x_{1}}} \\ {{a_{5}x_{4}} + {a_{6}x_{1}x_{5}} - {a_{7}x_{2}}} \\ {{a_{5}x_{5}} - {a_{6}x_{1}x_{4}} - {a_{7}x_{3}}} \\ {{{- a_{8}}x_{4}} - {a_{9}x_{1}x_{5}} + {a_{10}x_{2}}} \\ {{{- a_{8}}x_{5}} + {a_{9}x_{1}x_{4}} + {a_{10}x_{3}}} \end{bmatrix}},{B = \begin{bmatrix} 0 & 0 \\ b & 0 \\ 0 & b \\ 0 & 0 \\ 0 & 0 \end{bmatrix}},{C = \begin{bmatrix} 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \end{bmatrix}}}{{{{with}\mspace{14mu} x} = \left\lbrack {x_{1},x_{2},x_{3},x_{4},x_{5}} \right\rbrack^{T}},{u = {\left\lbrack {u_{1},u_{2}} \right\rbrack^{T}.}}}} & (2) \end{matrix}$

Problem Formulation

Many sensorless speed motor drives use vector control to regulate two variables: the rotor speed x₁ and the amplitude x₄ ²+x₅ ² of the rotor flux. The invention synthesizes the control input u such that x₁ and x₄ ²+x₅ ² track the angular speed ω_(d) (t), and the flux linkage φ_(d) ², respectively using the induction motor model of equation (2).

General State Estimator

A general state estimator can be expressed as

{circumflex over ({dot over (x)})}={circumflex over (f)}+O({tilde over (y)})

ŷ=C{circumflex over (x)}  (3)

where {circumflex over (x)} ε

⁵, {circumflex over (f)}=f ({circumflex over (x)},u), {tilde under (y)}=y−ŷ, and O is an output injection term. Equation (3) is an abstraction of well-known state estimators. For example, extended Kalman filter (EKF) and Luenberger based estimators correspond to the following expression of the vector field I as

O _(i)({tilde over (x)} ₂ , {tilde over (x)} ₃)=l _(i1) {tilde over (y)} ₁ +l _(i2) {tilde over (y)} ₂, 1≦i≦5,

and a sliding mode observer (SMO) corresponds to

O _(i)({tilde over (x)} ₂ , {tilde over (x)} ₃)=h _(i1) S({tilde over (y)} ₁)+h _(i2) S({tilde over (y)} ₂), 1≦i≦5.

We define estimation errors as {tilde over (x)}=x−{circumflex over (x)}. Given information of previous states, we can construct a projection mapping to bound the state estimates

{circumflex over (x)} _(i)=Proj_(x) _(i) (τ_(i))

τ_(i) ={circumflex over (f)} _(i) +O _(i)   (4)

where {circumflex over (f)}_(i) is the i^(th) component of {circumflex over (f)}. The projection mapping, when applied to a scalar, is

$\begin{matrix} {{{Proj}_{{\hat{x}}_{i}}\left( \bullet_{i} \right)} = \left( {\begin{matrix} 0 & {{{if}\mspace{14mu} {\hat{x}}_{i}} = {{x_{imax}\mspace{14mu} {and}\mspace{14mu} \bullet_{i}} > 0}} \\ 0 & {{{if}\mspace{14mu} {\hat{x}}_{i}} = {{x_{imin}\mspace{14mu} {and}\mspace{14mu} \bullet_{i}} < 0}} \\ \bullet_{i} & {otherwise} \end{matrix}.} \right.} & (5) \end{matrix}$

When applied to a vector {circumflex over (x)}, the component-wise projection mapping is

Proj_({circumflex over (x)})(•)=[Proj_({circumflex over (x)}) ₁ (•₁), . . . , Proj_({circumflex over (x)}) ₅ (•₅)]^(T).

For any function τ_(i), the projection mapping of equation (5) guarantees

$\begin{matrix} {{\hat{x} \in \Omega_{x}}\overset{\Delta}{=}{\left\{ {{\hat{x}\text{:}x_{imin}} \leq \hat{x} \leq x_{imax}} \right\}.}} & (6) \end{matrix}$

A slowly varying load torque can be treated by augmenting the state x with a₂, which is adapted in the estimator. Other slowly changing quantities, R_(r), a₅ a₇ a₈ a₁₀, can be treated in a similar manner.

State Estimator

We select the EKF as a state estimator to avoid a complicated gain tuning process. The idea of using EKF and its variants in speed sensorless motor drives are not new. Numerous methods use the EKF with a simplified induction motor model and a constant rotor speed, i.e., as expressed in equation (1) with {dot over (ω)}=0, see Kim et al., “Speed sensorless vector control of induction motor using extended Kalman filter,” IEEE Trans. Ind. Appl., vol. 30, no. 5, pp. 1225-1233, Sep./Oct. 1994, and Barut et al. “Speed-sensorless estimation for induction motors using extended Kalman filter,” IEEE Trans. Ind. Electron., vol. 54, no. 1, pp. 272-280, Jan. 2007.

Using a simplified induction motor model does simplify the structure of the EKF estimator. Because a simplified conventional induction motor model implicitly assumes speed as a parameter, the corresponding EKF necessarily performs as an adaptive estimator, which generally yields slowly convergent estimation error dynamics.

We reduce the effect of this limitation by considering the EKF estimator based on the full induction motor model of equation (2).

With the sampling rate of the filter denoted by T_(s) and the forward difference method, the system of equation (2) is discretized as

x _(k) =T _(s) f(x _(k-1) ,u _(k-1))+x _(k-1) =f′ (x _(k-1) ,u _(k-1))   (7)

Linearization of the dynamics is expressed as

${A = {\frac{\partial f}{\partial x} = \begin{bmatrix} {- a_{3}} & {{- a_{1}}x_{5}} & {a_{1}x_{4}} & {a_{1}x_{3}} & {{- a_{1}}x_{2}} \\ {a_{6}x_{5}} & {- a_{7}} & 0 & a_{5} & {a_{6}x_{1}} \\ {{- a_{6}}x_{4}} & 0 & {- a_{7}} & {{- a_{6}}x_{1}} & a_{5} \\ {{- a_{9}}x_{5}} & a_{10} & 0 & {- a_{8}} & {{- a_{9}}x_{1}} \\ {a_{9}x_{4}} & 0 & a_{10} & {a_{9}x_{1}} & {- a_{8}} \end{bmatrix}}},$

hence, A_(k)=T_(s)A+I with the identity matrix I.

Predictions

A predicted state estimate is

{circumflex over (x)}_(k|k-1) =f′({circumflex over (x)} _(k-1|k-1) , u _(k|k-1)), and   (8)

a predicted covariance estimate is

P _(k|k-1) =A _(k-1) P _(k-1|k-1) A _(k-1) ^(T) +Q _(k-1)  , (9)

Update

A measurement residual is

{tilde over (y)} _(k) =y _(k) −C{tilde over (x)} _(k|k-1)  , (10)

a residual covariance is

S _(k) =C _(k) P _(k|k-1) C _(k) ^(T) +R _(k)  , (11)

a near-optimal Kalman gain is

K _(k) =P _(k|k-1) C _(k) ^(T) S _(k) ⁻¹  , (12)

an updated state estimate is

{circumflex over (x)} _(k|k) ={circumflex over (x)} _(k|k-1) +K _(k) {tilde over (y)} _(k)  , (13)

an updated covariance estimate is

P _(k|k)=(I−K _(k) C _(k))P _(k|k-1), and   (14)

for the general observer form

$\begin{matrix} {L = {\frac{K_{k}}{Ts}.}} & (15) \end{matrix}$

Integrated Control Design

Assumptions and General Treatment

We consider the general case where a system is subject to parametric uncertainties θ ε

^(p), and uncertain nonlinearities {tilde over (d)}. The following practical assumption can be used in a speed control step described below.

Assumptions

Both parametric and nonlinear uncertainties are bounded, i.e.,

$\begin{matrix} {{{\theta \in \Omega_{\theta}}\overset{\Delta}{=}\left\{ {{\theta \text{:}\theta_{\min}} \leq \theta \leq \theta_{\max}} \right\}},{and}} & (16) \\ {{{\overset{\sim}{d} \in \Omega_{d}}\overset{\Delta}{=}\left\{ {{\overset{\sim}{d}\text{:}{\overset{\sim}{d}}} \leq \delta_{d}} \right\}},} & (17) \end{matrix}$

where {tilde over (d)}=d−{circumflex over (d)}, θ_(min)=[θ_(1min), . . . , θ_(pmin)]^(T), θ_(max)=[θ_(1max), . . . , θ_(pmax)]^(T) are known constants. The operation ≦ for two vectors is performed componentwise, and δ_(d) is a known bounding function.

Parametric uncertainties are treated by adaptation and projection. Let {circumflex over (θ)} denote the estimate of θ and {tilde over (θ)} so that an estimation error is {tilde over (θ)}=θ−{circumflex over (θ)}). In view of equation (16), the following adaptation law with discontinuous projection modification can be used

{circumflex over (θ)}=Proj_({circumflex over (θ)})(Γτ),   (18)

where Γ>0 is a diagonal matrix, τ ε

^(p) is a vector of adaptation functions synthesized later. The projection mapping

Proj_({circumflex over (θ)})(•)=[Proj_({circumflex over (θ)}) ₁ (•₁), . . . , Proj_({circumflex over (θ)}) _(p) (•_(p))]^(T)

is taken as follows

$\begin{matrix} {{{Proj}_{{\hat{\theta}}_{i}}\left( \bullet_{i} \right)} = \left( {\begin{matrix} 0 & {{{if}\mspace{14mu} {\hat{\theta}}_{i}} = {{\theta_{imax}\mspace{14mu} {and}\mspace{14mu} \bullet_{i}} > 0}} \\ 0 & {{{if}\mspace{14mu} {\hat{\theta}}_{i}} = {{\theta_{imin}\mspace{14mu} {and}\mspace{14mu} \bullet_{i}} < 0}} \\ \bullet_{i} & {otherwise} \end{matrix}.} \right.} & (19) \end{matrix}$

It can be shown that for any τ, the adaption law in equations (18)-(19) ensures equation (16) and

{tilde over (θ)}^(T)(Γ⁻¹Proj_({circumflex over (θ)})(Γτ)−τ)≦0, ∀τ.   (20)

For the induction motor case, parametric uncertainties can be due to the slowly time-varying resistance and load torque, and uncertain nonlinearities can be result from the state estimation error {tilde over (x)}=x−{circumflex over (x)}.

When restricted to the induction motor case, state estimation error {tilde over (x)} is bounded as

$\begin{matrix} {{{\overset{\sim}{x} \in \Omega_{x}}\overset{\Delta}{=}\left\{ {{\overset{\sim}{x}\text{:}{\overset{\sim}{x}}_{\min}} \leq \overset{\sim}{x} \leq {\overset{\sim}{x}}_{\max}} \right\}},} & (21) \end{matrix}$

where {tilde over (x)}_(min)=[{tilde over (x)}_(1min), . . . , {tilde over (x)}_(5min)]^(T) and {tilde over (x)}_(max)=[{tilde over (x)}_(1max), . . . , {tilde over (x)}_(5max)]^(T) Similarly, the boundedness of the state estimation error is guaranteed by equations (4)-(5).

Adaptive Backstepping Induction Motor Control

FIG. 2A shows the overall architecture of the speed sensorless control method and system. FIG. 2B shows an alternative embodiment with a combined flux and speed estimator 209. The control design is performed using backstepping technique, and includes four steps:

Step 1—Speed Control; Step 2—Torque Control; Step 3—Flux Outer Loop Control; and Step 4—Flux Inner Loop Control.

The first step is the speed control loop outputs an electromagnetic torque as a first virtual control signal. The second step is the torque control loop which regulates the electromagnetic torque. The third step is the flux control outer loop, and the fourth step is the flux control inner loops, which regulate the magnetic flux magnitude. State estimation errors are explicitly taken into account within all control design steps under the assumption described above.

The reference numerals for FIGS. 2A and 2B are:

-   201 Speed control (step 1) -   202 Torque control (step 2) -   203 Flux control outer loop (step 3) -   204 Flux control inner loop (step 4) -   104 Clarke Transformation/Power electronics -   105 Induction motor -   106 Flux estimator -   107 Speed estimator -   208 Control transformation -   111 desired angular rotor speed -   112 estimated angular rotor speed -   113 estimated angular rotor speed error -   214 desired torque -   215 estimated torque -   216 estimated torque error -   117 desired flux modulus -   118 estimated flux modulus -   119 estimated flux error -   124 measured voltage inputs -   125 current measurement -   126 estimated flux -   127 input voltage command. -   209 flux/speed estimator -   220 flux loop virtual control -   221 estimated flux loop control -   222 flux loop virtual control error -   223-224 combined voltage inputs

The components of the motor drive can be implemented as hardware circuits or other electronic components.

Comparison with Prior Art

Before describing the structure of the controller according to the embodiments of this invention, details of the differences with the prior art controller are noted. The prior art controller focuses on the current 123 produced by the current control 103 for the transformation power electronics 104, which is not required in the embodiment shown in FIG. 2A. Also, the prior art has a relatively simple flux control 102, compared to the flux control of FIG. 2A with an

inner 224 and outer 203 loop. The torque control loop 202 and control transformation 208 of FIG. 2A are missing from FIG. 1.

It is also noted that the embodiments use a number of “virtual” control signals, e.g., v₁, v₂, v₃, and v₄. The reason the controls are virtual is that the signal do not represent real physical values, but rather intermediate values.

Step 1—Speed Control

FIG. 3 shows the structure and operation of the speed control loop 201. The loop includes model compensation block 310 receiving the angular speed ω_(d)(t), a linear stabilizing feedback block 320, a speed dynamics block, and two adders 340 and 350.

We define a speed tracking error as a difference 350 z₁={circumflex over (x)}₁−ω_(d), and determine its time derivative as

$\begin{matrix} {{\overset{.}{z}}_{1} = {{{- a_{3}}z_{1}} + {a_{1}\left( {{x_{3}{\hat{x}}_{4}} - {x_{2}{\hat{x}}_{5}}} \right)} + {O_{1}\left( {{\overset{\sim}{x}}_{2},{\overset{\sim}{x}}_{2}} \right)} - {\overset{.}{\omega}}_{d} - {a_{3}\omega_{d}} - {{\hat{a}}_{2}.}}} & (22) \end{matrix}$

We define a first virtual control signal v₁, and define a difference between v₁ and an estimated electromagnetic torque η₁=a₁(x₃{circumflex over (x)}₄−x₂{circumflex over (x)}₅) as

z ₂ =a ₁(x ₃ x ₄ −x ₂ x ₅)−v ₁  . (23)

Thus, the speed tracking error dynamics 330 can be rewritten as

ż ₁ =−a ₃ z ₁ +v ₁ +z ₂ +O ₁({tilde over (x)} ₂ , {tilde over (x)} ₂)−{dot over (ω)}_(d) −a ₃ω_(d) −â ₂  . (24)

The first virtual control signal v₁ has two parts

v₁ =v _(1a) +v _(is)  , (25)

where v_(1a) is the feedforward model compensation given by

v _(1a) =−O ₁({tilde over (x)}₂ ,{tilde over (x)} ₂)+{dot over (ω)}_(d) +a ₃ω_(d) +â ₂  , (26)

and v_(1s) is an the feedback from the linear stabilization control 320

v _(1s) =−k _(1s1) z ₁  . (27)

Thus, equation (24) can be rewritten as follows

ż ₁ =−k ₁ z ₁ +z ₂ ,k ₁ =a ₃ +k _(1s1)  . (28)

Overall the first virtual control signal v₁ is

v ₁ =−k _(1s1) z ₁ −O ₁({tilde over (x)} ₂ , {tilde over (x)} ₂)+{dot over (ω)}_(d) +a ₃ω_(d) +â ₂  , (29)

and its derivative is determined as follows

$\begin{matrix} {{{\overset{.}{v}}_{1} = {{k_{1s\; 1}k_{1}z_{1}} + {\overset{¨}{\omega}}_{d} + {a_{3}\omega_{d}} + {\hat{a}}_{2} + {\left( {{l_{11}a_{7}} + {l_{11}l_{21}} + {l_{12}l_{31}}} \right){\overset{\sim}{x}}_{2}} + {\left( {{l_{12}a_{7}} + {l_{11}l_{22}} + {l_{12}l_{32}}} \right){\overset{\sim}{x}}_{3}} - {\left( {{l_{11}a_{5}} - {l_{12}a_{6}{\hat{x}}_{1}}} \right){\overset{\sim}{x}}_{4}} - {\left( {{l_{12}a_{5}} + {l_{11}a_{6}{\hat{x}}_{1}}} \right){\overset{\sim}{x}}_{5}} - {\left( {{l_{11}a_{6}x_{5}} - {l_{12}a_{6}x_{4}}} \right){\overset{\sim}{x}}_{1}} - {k_{1s\; 1}z_{2}}}},} & (30) \end{matrix}$

which is used in the torque control step.

Step 2—Torque Control

FIG. 4A shows the torque control loop 202 with model compensation 410, adaptation 420, nonlinear feedback 430, and torque dynamics 450. Three adders 460, 470 and 480 are used.

According to equations (23), (30), and (3), we have

ż ₂ =v ₂+Ψ₂ +d ₂  . (31)

where v₂=a₂₁bu₁+a₂₂bu₂ with a₂₁=−a₁{circumflex over (x)}₅, a₂₂=a₁{circumflex over (x)}₄, and

$\begin{matrix} {{\psi_{2} = {{{- \left( {a_{7} + a_{8}} \right)}v_{1}} - {a_{1}a_{6}{{\hat{x}}_{1}\left( {{\hat{x}}_{4}^{2} + {\hat{x}}_{5}^{2}} \right)}} - {a_{1}a_{9}{{\hat{x}}_{1}\left( {{{\hat{x}}_{5}x_{3}} + {{\hat{x}}_{4}x_{2}}} \right)}} + {a_{1}{a_{10}\left( {{{\hat{x}}_{2}x_{3}} - {{\hat{x}}_{3}x_{2}}} \right)}} + {a_{1}x_{3}{O_{4}\left( {{\overset{\sim}{x}}_{2},{\overset{\sim}{x}}_{3}} \right)}} - {a_{1}x_{2}{O_{5}\left( {{\overset{\sim}{x}}_{2},{\overset{\sim}{x}}_{3}} \right)}} - {k_{1s\; 1}k_{1}z_{1}} - {\overset{¨}{\omega}}_{d} - {a_{3}{\overset{.}{\omega}}_{d}} - {\overset{\overset{.}{\hat{}}}{a}}_{2} - {\left( {{l_{11}a_{7}} + {l_{11}l_{21}} + {l_{12}l_{31}}} \right){\overset{\sim}{x}}_{2}} - {\left( {{l_{12}a_{7}} + {l_{11}l_{22}} + {l_{12}l_{32}}} \right){\overset{\sim}{x}}_{3}} + {k_{1s\; 1}z_{2}}}}{d_{2} = {{a_{1}{a_{5}\left( {{{\overset{\sim}{x}}_{5}{\hat{x}}_{4}} - {{\overset{\sim}{x}}_{4}{\hat{x}}_{5}}} \right)}} - {a_{1}a_{6}{x_{1}\left( {{{\overset{\sim}{x}}_{4}{\hat{x}}_{4}} + {{\overset{\sim}{x}}_{5}{\hat{x}}_{5}}} \right)}} - {a_{1}a_{6}{{\overset{\sim}{x}}_{1}\left( {{\hat{x}}_{4}^{2} + {\hat{x}}_{5}^{2}} \right)}} + {\left( {{l_{11}a_{5}} - {l_{12}a_{6}{\hat{x}}_{1}}} \right){\overset{\sim}{x}}_{4}} + {\left( {{l_{12}a_{5}} + {l_{11}a_{6}{\hat{x}}_{1}}} \right){\overset{\sim}{x}}_{5}} + {\left( {{l_{11}a_{6}x_{5}} - {l_{12}a_{6}x_{4}}} \right){{\overset{\sim}{x}}_{1}.}}}}} & (32) \end{matrix}$

Note that d₂ denotes the disturbance due to state estimation errors. Although d₂ is typically time varying, one can estimate its slowly time-varying component, which can result in improved performance. In this case, the adaption law 420 for identifying d₂ can be

τ₂₂ =z ₂

{circumflex over ({dot over (d)})} ₂=Proj(Γ₂₂τ₂₂)   (33)

with {circumflex over (d)}₂ representing the estimation of d₂.

We denote d₂={circumflex over (d)}₂+{tilde over (d)}₂. The second virtual control signal v₂ is rewritten as

v ₂ =v _(2a) +v _(2s)  , (34)

where the feedforward model compensation term is

v _(2a)=Ψ₂ −{circumflex over (d)} ₂ −z ₁  , (35)

and the feedback stabilization term v_(2s) has a nominal stabilization term v_(2s1) and a control term v_(2s2)

v _(2s) =v _(2s1) +v _(2s2)

v _(2s1) =−k _(2s1) z2

k ₂ =a ₇ +a ₈ +k _(2s1)   (36)

Thus, equation (31) can be rearranged as

ż ₂ =k ₂ z ₂ +v _(2s2) +{tilde over (d)} ₂ −z ₁  . (37)

Given the above assumption, {tilde over (d)}₂ is bounded. Thus, there exists v_(2s2) such that the following conditions hold

z ₂(v _(2s2) +{tilde over (d)} ₂)≦ε₂, and

z ₂ v _(2s2)≦0,

where ε₂ is an arbitrarily small threshold parameter. One example of v_(2s2) that satisfies above conditions is

$\begin{matrix} {{v_{2\; s\; 2} = {{- \frac{1}{4\; ɛ_{2}}}h_{2}^{2}z_{2}}},} & (38) \end{matrix}$

where h₂=δ_(d2) and δ_(d2) is the bound of {tilde over (d)}₂.

The first and second virtual control signals v₁ and v₂ ensure that the speed z₁ and torque z₂ are bounded. We define a positive definite function

$\begin{matrix} {{V_{s\; 2} = {{\frac{1}{2}z_{1}^{2}} + {\frac{1}{2}z_{2}^{2}}}},} & (39) \end{matrix}$

and its time derivative

$\begin{matrix} \begin{matrix} {{\overset{.}{V}}_{s\; 2} = {{{- k_{1}}z_{1}^{2}} + {z_{1}z_{2}} + {z_{2}{\overset{.}{z}}_{2}}}} \\ {= {{{- k_{1}}z_{1}^{2}} - {k_{2}z_{2}^{2}} + {z_{2}\left( {v_{2s\; 2} + {\overset{\sim}{d}}_{2}} \right)}}} \\ {\leq {{{- k_{1}}z_{1}^{2}} - {k_{2}z_{2}^{2}} + ɛ_{2}}} \\ {\leq {{{- \lambda_{2}}V_{s\; 2}} + {ɛ_{2}.}}} \end{matrix} & (40) \end{matrix}$

Hence, V_(s2) is bounded by

$\begin{matrix} {{V_{s\; 2} \leq {{{\exp \left( {{- \lambda_{2}}t} \right)}{V_{s\; 2}(0)}} + {\frac{ɛ_{2}}{\lambda_{2}}\left\lbrack {1 - {\exp \left( {{- \lambda_{2}}t} \right)}} \right\rbrack}}},{{{where}\mspace{14mu} \lambda_{2}} = {2\; {\min \left( {k_{1},k_{2}} \right)}}},} & (41) \end{matrix}$

where the function min returns a minimum.

If the state estimator design can guarantee finite time convergence, i.e., {tilde over (d)}₂=0 after some t₂, then it can be shown that from Barbalat's lemma and equation (41) with {tilde over (d)}₂=0, the tracking error approaches zero over time, i.e., z₁, z₂→0, as t→∞.

Step 3—Flux Outer Loop Control

FIG. 4B shows the structure and operation of the flux control outer loop with model compensation 415, linear stabilizing feedback 425, dynamics 445 and two adders 445 and 455.

Flux tracking control also uses backstepping. We define a flux module tracking error as

z ₃ ={circumflex over (x)} ₄ ² +{circumflex over (x)} ₅ ²−φ_(d) ²  and (42)

denote Ψ_(d)(t)=φ_(d) ²(t), and its time derivative

ż ₃=2a ₁₀(x ₂ {circumflex over (x)} ₄ +x ₃ {circumflex over (x)} ₅)+Ψ₃  , (43)

where

$~{\psi_{3} = {{{- 2}\; {a_{8}\left( {{\hat{x}}_{4}^{2} + {\hat{x}}_{5}^{2}} \right)}} - {2{a_{10}\left( {{{\overset{\sim}{x}}_{2}{\hat{x}}_{4}} + {{\overset{\sim}{x}}_{3}{\hat{x}}_{5}}} \right)}} + {2\; l_{41}{\overset{\sim}{x}}_{2}{\hat{x}}_{4}} + {2l_{42}{\overset{\sim}{x}}_{3}{\hat{x}}_{4}} + {2l_{51}{\overset{\sim}{x}}_{2}{\hat{x}}_{5}} + {2l_{52}{\overset{\sim}{x}}_{3}{\hat{x}}_{5}} - {{\overset{.}{\psi}}_{d}.}}}$

Note that Ψ₃ depends on accessible signals. We use a third virtual control signal v₃, and a state z₄ to denote the discrepancy between v₃ and

η₂=2a ₁₀(x ₂ {circumflex over (x)} ₄ +x ₃ {circumflex over (x)} ₅), i.e.,

z ₄=2a ₁₀(x ₂ {circumflex over (x)} ₄ +x ₃ {circumflex over (x)} ₅)−v₃  . (44)

Similar to the rewriting of the first virtual control signal v₁, the second virtual control signal v₃ is rewritten as

v ₃ =v _(3a) +v _(3s)  , (45)

where the feedforward model compensation is v_(3a)=−Ψ₃ and the feedback stabilization term v_(3s)=−k_(3s1)z₃. Thus, we have

ż ₃ =−k ₃ z ₃ +z ₄  , (46)

where k₃=k_(3s1).

Step 4—Flux Inner Loop Control

FIG. 4C shows the structure and operation of the flux control inner loop with model compensation 461, adaptation 462, nonlinear feedback 465, linear stabilizing feedback, dynamics and three adders 466, 467 and 468.

The derivative of the virtual control signal discrepancy is

ż ₄ =v ₄+Ψ₄ +d ₄  , (47)

where v₄=a₂₁bu₁+a₂₂bu₂ with a₄₁=2a₁₀{circumflex over (x)}₄ and a₄₂=2a₁₀{circumflex over (x)}₅, and

$~{\psi_{4} = {{2a_{10}{a_{5}\left( {{\hat{x}}_{4}^{2} + {\hat{x}}_{5}^{2}} \right)}} - {2a_{10}{a_{7}\left( {{{\hat{x}}_{2}{\hat{x}}_{4}} + {{\hat{x}}_{3}{\hat{x}}_{5}}} \right)}} + {2{a_{10}\left( {{l_{21}{\overset{\sim}{x}}_{2}{\hat{x}}_{4}} + {l_{22}{\overset{\sim}{x}}_{3}{\hat{x}}_{4}} + {l_{31}{\overset{\sim}{x}}_{2}{\hat{x}}_{5}} + {l_{32}{\overset{\sim}{x}}_{3}{\hat{x}}_{5}}} \right)}} + {2\left( {{l_{41}{\hat{x}}_{4}} + {l_{51}{\hat{x}}_{5}}} \right)\left( {{{- \left( {a_{7} + l_{21}} \right)}{\overset{\sim}{x}}_{2}} - {l_{22}{\overset{\sim}{x}}_{3}}} \right)} + {2\left( {{l_{42}{\hat{x}}_{4}} + {l_{52}{\hat{x}}_{5}}} \right)\left( {{{- l_{31}}{\overset{\sim}{x}}_{2}} - {\left( {a_{7} + l_{32}} \right){\overset{\sim}{x}}_{3}}} \right)} + {2\left( {{l_{41}{\overset{\sim}{x}}_{2}} + {l_{42}{\overset{\sim}{x}}_{3}} + {a_{10}{\hat{x}}_{2}} - {2a_{8}{\hat{x}}_{4}}} \right) \times \left( {{{- a_{8}}{\hat{x}}_{4}} - {a_{9}{\hat{x}}_{1}{\hat{x}}_{5}} + {a_{10}{\hat{x}}_{2}}} \right)} + {2\left( {{l_{41}{\overset{\sim}{x}}_{2}} + {l_{42}{\overset{\sim}{x}}_{3}} + {a_{10}{\hat{x}}_{2}} - {2a_{8}{\hat{x}}_{4}}} \right)\left( {{l_{41}{\overset{\sim}{x}}_{2}} + {l_{42}{\overset{\sim}{x}}_{3}}} \right)} + {2\left( {{l_{51}{\overset{\sim}{x}}_{2}} + {l_{52}{\overset{\sim}{x}}_{3}} + {a_{10}{\hat{x}}_{3}} - {2a_{8}{\hat{x}}_{5}}} \right) \times \left( {{{- a_{8}}{\hat{x}}_{5}} + {a_{9}{\hat{x}}_{1}{\hat{x}}_{4}} + {a_{10}{\hat{x}}_{3}}} \right)} + {2\left( {{l_{51}{\overset{\sim}{x}}_{2}} + {l_{52}{\overset{\sim}{x}}_{3}} + {a_{10}{\hat{x}}_{3}} - {2a_{8}{\hat{x}}_{5}}} \right)\left( {{l_{51}{\overset{\sim}{x}}_{2}} + {l_{52}{\hat{x}}_{3}}} \right)} + {k_{3}\left( {{{- k_{3}}z_{3}} + z_{4}} \right)} - {\overset{¨}{\psi}}_{d}}}$ $d_{4} = {{\left( {{2a_{5}l_{41}{\hat{x}}_{4}} - {2a_{6}l_{42}{\hat{x}}_{4}{\hat{x}}_{1}} + {2a_{5}l_{51}{\hat{x}}_{5}} - {2a_{6}l_{52}{\hat{x}}_{5}{\hat{x}}_{1}}} \right){\overset{\sim}{x}}_{4}} + {\left( {{2l_{41}a_{6}{\hat{x}}_{1}{\hat{x}}_{4}} + {2l_{51}a_{6}{\hat{x}}_{1}{\hat{x}}_{5}} + {2l_{42}a_{5}{\hat{x}}_{4}} + {2l_{52}a_{5}{\hat{x}}_{5}}} \right){\overset{\sim}{x}}_{5}} + {2\left( {{l_{41}{\hat{x}}_{4}} + {l_{51}{\hat{x}}_{5}}} \right)a_{6}{\overset{\sim}{x}}_{1}x_{5}} - {2\left( {{l_{42}{\hat{x}}_{4}} + {l_{52}{\hat{x}}_{5}}} \right)a_{6}{\overset{\sim}{x}}_{1}x_{4}}}$

A function of accessible signals is Ψ₄, and d₄ represents the disturbance result from the state estimation error. Although d₄ is time-varying, one can estimate its slowly time-varying component by adaptation and a discontinuous projection

τ₄₄ =z ₄

{circumflex over (d)} ₄=Proj(Γ₄₄τ₄₄)   (48)

where {circumflex over (d)}₄ is the estimate of d₄.

We denote the fourth virtual control v₄ as

v ₄ =v _(4a) +v _(4s)  , (49)

where the feedforward model compensation is

v _(4a)=−Ψ₄ −{circumflex over (d)} ₄ −z ₃  . (50)

and the feedback term includes a nominal stabilization term v_(4s1) and a control term v_(4s2) given by

v _(4s) =v _(4s1) +v _(4s2)

v _(4s1) =−k ₄ z4   (51)

We define {tilde over (d)}₄=d₄−{circumflex over (d)}₄. Thus,

ż ₄ =−k ₄ z ₄ +v _(4s2) +{tilde over (d)} ₄ −z ₃  . (52)

Given the above assumption, d₄ is bounded. Also, the adaptive law equation (48) ensures the boundedness of {circumflex over (d)}₄. Consequently, we know {tilde over (d)}₄ is bounded. Hence, v_(4s2) can be determined such that

z ₄(v _(4s2) +{tilde over (d)} ₄)≦ε₄, and

z ₄ v _(4s2)≦0,

where ε₄ is an arbitrarily small design parameter. One example of v_(4s2) satisfying above inequalities is

$\begin{matrix} {{v_{4s\; 2} = {{- \frac{1}{4\; ɛ_{4}}}h_{4}^{2}z_{4}}},} & (53) \end{matrix}$

where h₄=δ_(d4) and δ_(d4) is the bound of {tilde over (d)}₄.

Third and fourth virtual control signals v₃ and v₄ guarantee the boundedness of z₃ and z₄. Taking a Lyapunov function candidate

$\begin{matrix} {{V_{s\; 4} = {{\frac{1}{2}z_{3}^{2}} + {\frac{1}{2}z_{4}^{2}}}},} & (54) \end{matrix}$

and determining its time derivative, we can derive

$\begin{matrix} {{V_{s\; 4} \leq {{{\exp \left( {{- \lambda_{4}}t} \right)}{V_{s\; 4}(0)}} + {\frac{ɛ_{4}}{\lambda_{4}}\left\lbrack {1 - {\exp \left( {{- \lambda_{4}}t} \right)}} \right\rbrack}}},} & (55) \end{matrix}$

with λ₄=2min(k₃, k₄). This implies the boundedness of z₃ and z₄. If we assume that z₃ and z₄ dynamics are only subject to parametric uncertainties, i.e., {tilde over (d)}₄=0), after some finite time t₄, the zero solution of z₃ and z₄ dynamics is asymptotically stable, i.e., z₃, z₄→0, as t→∞.

The control input can be determined by

$\begin{matrix} {\begin{bmatrix} u_{1} \\ u_{2} \end{bmatrix} = {{{\frac{1}{b}\begin{bmatrix} {{- a_{1}}{\hat{x}}_{5}} & {a_{1}{\hat{x}}_{4}} \\ {2a_{10}{\hat{x}}_{4}} & {2a_{10}{\hat{x}}_{5}} \end{bmatrix}}^{- 1}\begin{bmatrix} {v_{2a} + v_{2s}} \\ {v_{4a} + v_{4s}} \end{bmatrix}}.}} & (56) \end{matrix}$

For the control input voltage to has unique solution, we have

$\begin{matrix} {{{\begin{matrix} {{- a_{1}}{\hat{x}}_{5}} & {a_{1}{\hat{x}}_{4}} \\ {2a_{10}{\hat{x}}_{4}} & {2a_{10}{\hat{x}}_{5}} \end{matrix}} = {{{- 2}a_{1}{a_{10}\left( {{\hat{x}}_{4}^{2} + {\hat{x}}_{5}^{2}} \right)}} \neq 0}},} & (57) \end{matrix}$

which means that the flux modulus estimate should not be zero.

Flux and Speed Estimator

FIG. 5 shows the flux and speed estimator 209 of FIG. 2B in greater detail. One embodiment of the flux and speed estimator is an EKF 515 designed on the basis of the induction motor model 510, which comprises stator and flux dynamics 512 and speed dynamics 514. The EKF 515 estimate the flux and speed according to measured signals: stator voltages 124 and stator currents 125.

Although the invention has been described by way of examples of preferred embodiments, it is to be understood that various other adaptations and modifications can be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention. 

We claim:
 1. A method for controlling an angular speed of an induction motor, comprising steps of: measuring a stator current and a stator voltage of the induction motor to determine an estimated stator current, an estimated rotor flux amplitude, and an estimated rotor speed; determining a first virtual control signal based on a reference rotor speed and the estimated rotor speed; determining a second virtual control signal based on the first virtual control signal and an estimated electromagnetic torque; determining a third virtual control signal based on a reference rotor flux and the estimated rotor flux amplitude; determining a fourth virtual control signal based on the third virtual control signal and an estimate of the third virtual control signal; computing control input voltages from the second and fourth virtual control signals; and applying the control input voltages to the induction motor, wherein the steps are performed in a motor drive.
 2. The method of claim 1, wherein the angular speed is variable.
 3. The method of claim 1, wherein the estimated stator current, the estimated rotor flux amplitude, and the estimated rotor speed are determined by an extended Kalman filter (EKF).
 4. The method of claim 1, wherein the estimated stator current and the estimated rotor flux amplitude, and the estimated rotor speed are determined independently.
 5. The method of claim 1, wherein a speed control loop outputs an electromagnetic torque as a first virtual control signal, a torque control loop regulates the electromagnetic torque, a flux control outer loop and a flux control inner loop to regulate a magnitude of a magnetic flux.
 6. The method of claim 5, wherein the speed control loop includes a model compensation block, a linear stabilization block and a dynamics block.
 7. The method of claim 6, wherein the model compensation block and the linear stabilizing feedback block are determined from dynamics of a speed tracking error.
 8. The method of claim 5, wherein the torque control includes a model compensation block, a linear stabilizing feedback block, a nonlinear feedback block, an adaptive law block, and a dynamic block.
 9. The method of claim 8, wherein the model compensation block, the linear stabilizing feedback block, the nonlinear feedback block, and the adaptive law block are determined from dynamics of an error between the first virtual control and an estimated electromagnetic torque.
 10. The method of claim 5, wherein the flux control outer loop includes a model compensation block, a linear stabilizing feedback block, and a dynamic block.
 11. The method of claim 10, wherein the model compensation block and the linear stabilizing feedback block are determined from dynamics of an error between a magnitude reference of a magnetic flux and an estimate of the magnitude reference of the magnetic flux.
 12. The method of claim 5, wherein the flux control inner loop includes a model compensation block, a linear stabilizing feedback block, a nonlinear feedback block, an adaptive law block, and a dynamic block.
 13. The method of claim 12, wherein the model compensation block, the linear stabilizing feedback block, the nonlinear feedback block, and the adaptive law block are determined from dynamics of an error between the third virtual control and an estimate of the error.
 14. The method of claim 1, wherein the first virtual control signal includes feedforward model compensation and feedback from a linear stabilization control block.
 15. The method of claim 7, wherein the first virtual control signal and the second virtual control signal ensure that the speed tracking error and torque are bounded.
 16. The method of claim 1, wherein the third virtual control signal and the fourth virtual control signals guarantee a boundedness of a flux module tracking error and a discrepancy of the fourth virtual control signal.
 17. A motor drive for controlling an angular speed of an induction motor, comprising: a speed control loop for determining a first virtual control signal based on a reference rotor speed and the estimated rotor speed; a torques control loop for determining a second virtual control signal based on the first virtual control signal and an estimated electromagnetic torque; a flux control outer loop for determining a third virtual control signal based on a reference rotor flux reference and the estimated rotor flux amplitude; a flux control loop for determining a fourth virtual control signal based on the third virtual control signal and an estimate of the third virtual control signal, wherein the control input voltages are applied to the induction motor based on the second virtual control signal and the fourth virtual control signal.
 18. The motor drive of claim 17, further comprising: a speed control loop for outputting an electromagnetic torque as the first virtual control signal; a torque control loop for regulating the electromagnetic torque; and a flux control outer loop and a flux control inner loop for regulating a magnitude of a magnetic flux.
 19. The motor drive of claim 11, wherein a speed tracking error is determined by the speed control loop further comprising: a model compensation block; a linear stabilization block; and a dynamics block. 